Version 2.55 is being released to current FSP users. Please exercise it and report any problems or suggestions. I will try to get a complete package, with better examples and complete docs, soon. I'd certainly
appreciate any FSP Control files as examples.
2.3 -> 2.4 Notes:
FSP 2.5/2 works only with RRHost 2.0 file sections.
Empty lines within a description are discarded. If they are desired for
formatting, include at least one character in the line.
Successive 'DESC's within a FORMAT statement refer to successive lines of
description, e,g "DESC+CR+DESC+CR+DESC+CR" will put out lines 1-3 of the
description. If any of the three lines is empty, then a blank line is
output (since the CR is unconditional).
CRDESC within a FORMAT statement indicates that a CR is output only if the
next line of description is non-empty.
DESCA within a FORMAT means all description lines that contain text, each
separated by a CR.
Both /DATE & /ULDATE sorts now sort by exact time of UL rather than just
the date. The drawback is that it is no longer possible to SORT/TITLE,
then SORT/DATE to get an Alphabetic listing within a single day.
SAVETEXT/DESC will output all lines of description.
*******************
*** FSP 2.5/2 ***
*******************
********************
*** New Symbols ***
All_Files_Sect
New_Files_Sect
Default_Level : 0 if not specified
Desc_Prompt : 'Added by FSP: ' if not specified.
These symbols are used in the ADD/FOLDER command. See the command description for details.
No_Files
This symbol is set to YES if there are no file entries in memory. It is set to NO if there are files in the current list. It can be used to skip unnecessary FSP commands.
*************************
*** New Format Items ***
(Used in FORMAT command.)
NAME
NAME is the actual name of the file. It is equivalent to PATH with the folder names stripped from the front.
COL[:nn]
COL will cause the next output field to be placed at the specified column. If the column number is not specified, it will default to 0. For example, "DATE+COL:30+TITLE" will put the file title in column 30. If the last output field already passed the specified column, then a carriage return is output and the next output will be placed on the next line at the specified column. This can be used with multiple DESC fields as a conditional carriage return. For example, '...DESC+COL+DESC+COL+DESC' will put out the first line of description, then a carriage return if there was anythin text output, then the next line, a carriage return if the line was not empty, and so forth.
This approach allows complete format control (which 2.4 didn't provide) so DESCR has been dropped as a format option.
The order of defaults was set so the a 'C' is equivalent to a COL rather than a CR (Carriage Return).
********************
*** New Commands ***
MOVE "<path>" "<Guard>"
MOVE/UNDER "<path>" "<Guard>"
MOVE/DELETE "<path>" "<Guard>"
MOVE will move any referenced files in the current section into the specified path, if it is not already in that folder. However, there are several constraints:
The Path must reference a valid folder. FSP will not create folders.
Only file entries with correct paths will be moved.
Only non-deleted entries will be moved, unless the /DELETE option is specfied, in which case, only files marked for deletion are moved.
Files must be on the same volume. MOVE will not copy or move a file from one volume to another.
The 'BBS' symbol must be defined if you use a partial path.
Any moved files will be logged in 'FSP Log'.
If the /UNDER option is used and a file is in a subfolder of the specfied folder, it will NOT be moved. For example, if a file entry has a path of ':Files:Sect3:A-K:A_File' and a MOVE/UNDER ':Files:Sect3' is executed, the file will not be moved. If, however, the path for a file is ':Files:Sect4:A-K:Another_File', then the file will be moved into Sect3 and the path changed to ':Files:Sect3:Another_File'.
CHECKPATH "<Volume or Folder Path>" "<Guard>"
CHECKPATH/DELETE "<Volume or Folder Path>" "<Guard>"
This command verifies the path for each non-deleted entry in the current list. If the path is incorrect, FSP will scan the specified volume/folder and all descendants of the volume/folder looking for the file. If it is found, the path is corrected. If it is not found and the /DELETE option is set, then the file will be marked for deletion. If no option is used and the file is not found, nothing happens.
If a null volume is used (CHECKPATH "" "<guard>"), FSP will scan the default volume from the top.
This command has several advantages over the old CHECK/PATH, which is replaces. For one thing, FSP can scan a subset of the disk faster than the entire disk. Also, it can be used with more than one volume. If the BBS file system is across two volumes, a CHECKPATH "<1st Vol.>" can be used to scan the first volume, then a CHECKPATH/DELETE "<2nd Vol.>" is used to scan the second, and delete any files that aren't found on either disk.
CHECKTYPE
Equivalent to CHECK/TYPE.
ADD/FOLDER "<Folder path>" "<Guard>"
This command will scan each file in the specified folder and compare it to the paths referenced by the file entry list (in memory). If any files exist in the folder that do not exist in the list of files, FSP will check "All_Files_Sect" and "New_Files_Sect". If the entry is found there, it is copied into the current list. If not, a new entry is created, using Default_Level as the privilege level and setting the description to Desc_Prompt followed by the full name of the file. The 12-character Title is set to the file name truncated to 12 characters, with trailing blanks removed, and any Option characters replaced with '+'. It IS possible to have duplicate names, so the Sysop must edit these created entries.
LIST "n"
N is a single digit decimal number. If N is >2, then both the screen and the log file will show statements within macros as they are executed. This is useful for debugging.
If N is > 5, then memory usage will be reported to the screen after each FSP command is executed.
This command will probably be extended in the future.
SORT/DLCNT
This SORTs by the number of times a file has been downloaded.
SORT/DLDATE
This will sort the files in order of the last date the file was downloaded.
SORT/DATE sorts by date of Upload, as it did before.
************************
*** Changed Commands ***
SAVETEXT[/LONG], READTEXT
SAVETEXT with no option or the LONG option now saves in the following format:
DELE flag : '-' if marked for deleted, ' ', if not.
An extra return. (A blank line will separate entries.)
READTEXT will read this file in and convert it to file section format, including any changes made with a text editor, thus providing a way of modifying any file section fields without resorting to Fedit and digging through lots of hex numbers, albeit in a somewhat kludgy way.
There is some error checking which will cause FSP to abort if an incorrectly formatted file is read, but there users should make every effort to get it right and avoid exercising the error handling capabilities.
LOAD, READTEXT
These commands are now 'protected' by guards. To review:
LOAD ":Sect1:.DL1" "ReadTxt-"
is logically equivalent to
IF "ReadTxt-" = "YES" or TRUE or NO- or FALSE-
then
LOAD ":Sect1:.DL1"
FORMAT "<format list>"
If the first character of the format list is '+', the format
is appended to the previous format rather than defining a
new one.
*************************
*** Deleted Commands ***
SAVE/MONTH
I didn't use it any more. It can be simulated with creative use of
DELETE/AGE and DELETE/NONE.
DELETE/TEXT
I didn't use it, and FSP was running short on segment space.
SAVETEXT/BRIEF
This text format is not really needed since FSP allows custom formats.
CHECK/PATH
Superceded by CHECKPATH
CHECK/PATH "<guard>" is equivalent to CHECKPATH/DELETE "" "<Guard>"
CHECK/TYPE
Superceded by CHECKTYPE.
*** Other changes ***
Holding the Mouse down as FSP completes an instruction will cause FSP to
terminate.
A SHOWSYMBOL with 'ALL' as the second argument will dump the entire
symbol table to the screen and the log file.
There are numerous other subtle changes, but I don't remember all of them.
*** FSP 2.5/2 --> FSP 2.51 ***
Since RRHost 2.0 has been released, I've dropped the '/2'. However, version 2.51 is more recent than 2.5/2. Version 2.5/2 has a serious problem that can cause loss of file sections under some circumstances, specifically the combined used of DEFINE "New_Files_Sect" and/or DEFINE "All_Files_Sect" and ADD/FOLDER; therefore replace FSP 2.5/2 immediately.
There are no other changes.
*******************
*** FSP 2.55 ***
*******************
************************
*** Fixed Commands ***
Both ADD/FOLDER and MOVE didn't work unless the BBS symbol was defined.
Both commands work with full pathnames now.
The MOVE/UNDER command didn't work in certain cases. It does now.
READTEXT wouldn't work with 10 line descriptions. Now it does. Also, any
number of blank lines may separate entries within a readtext-compatible file. The Version field was being truncated to 8 characters. This is fixed.
The SAVETEXT/FORMAT had a problem with field widths that was introduced with the COL field. This is fixed. (This particular logic is complicated
enough that bugs may still be present. If you find any, please let me know.)
The LAUNCH command has been tweaked for more consistent performance.
************************
*** Changed Commands ***
The DELETE/AGE command argument may be specified as "n", "<n", or ">n", where 'n' is a number, and with '>' as the default. That is, both DELETE/AGE "100" and DELETE/AGE ">100" will mark files over 100 days old as deleted. DELETE/AGE "<100" will mark files younger than 100 days.
************************
*** New Commands ***
CLEAR/DLCNT will zero the DL count field in the current list. This can be used in conjunction with the ADD/DLCNT to maintain correct DL counts across multiple file sections.
DELETE/CLRNC "n" or ">n" or "<n" will mark any files that have clearance (privilege) set to >n or <n. Default is >n.
DELETE/DLCNT "n" or ">n" or "<n" will mark any files that have DL counts < n, > n , or < n, respectively.
where a range is "low-high" or a "<number>", in which case a default will be used for the missing value. A 'K' may be used to multiply the stated value by 1024.
For example,
DELETE/FILTER "90" "500K" "9" "5"
will 'delete' all file entries greater than 90 days old, larger then 500K, with a DLCNT of <= 9, and a clearance (privilege) of 0-5.
DELETE/FILTER "90-365" "300K" "5" "5"
Note that if only one number is specified for 'age' and 'size', the specified number is assumed to be the lower range, while if a single number is specified for 'dlcnt' or 'clrnc', the number is the upper limit, with zero as the lower number.
(The 3650 is roughly 10 years. There are internal reasons for constraining this value although the exact number is arbitrary.)
The clearance/privilege field can be used to protect particular files from automatic deletion.
SIZE
This will show the number of available (not deleted) files, the number of deleted files, and the total size of each group. The size figures are based on the size attribute listed in the file entries, with each figure rounded up to the next 1K boundary.
Example:
43 available/ 489K ; 12 deleted / 330K
SENDSERIAL "<Port>" "<Modem Cmds>"
The port should be either 'A' (modem) or 'B' (printer). The <Modem Cmds> will be sent to the specified port and followed by a return.
SENDSERIAL "A" "ATH1" will take the modem off the hook.